<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
</body>
</html>
<script>
// 单词：
  // instance - 实例/例子


function createAuthor(name = '佚名', home = '未知') {
  return {
    name,
    home,
    write(bookName) {
      console.log(this, '写了一本书', bookName);
    }
  }
}

const x1 = createAuthor();

// console.log(x1);

const moyan = createAuthor('莫言', '中国');
// moyan.write('红高粱')
console.log(moyan);


// const o = new Object();
// 自定义构造函数： Author

// 自定义构造函数  如何 声明：

/* 自定义构造函数 技术点 总结：
  1. 其 本质还是 函数
  2. 约定： 其 首字母 大写
  3. new 自定义构造函数，其返回值 为 「实例对象」  -  注：new 生成的对象，又可叫 “实例 / 实例对象” - instance
  4. 函数体中的 `this` ，代指 "实例对象"
  5. 其 函数体内，不能有 return;
*/

function Author(name, home) {
  this.name = name;
  this.home = home;
  this.write = function(bookName) {
    console.log(this, '写了一本书', bookName);
  }
}


const moyan1 = new Author('莫言', '中国');
console.log(moyan1);
</script>